package com.scs.application.modules.base.vo;

import com.scs.application.core.utils.StringUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * HospitalSupplier实体对象
 *
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class HospitalSupplierVO implements Serializable {


    private String id;

    /**
     * 医院ID
     */
    //@NotBlank(message="医院ID不能为空")
    //@Length(min=1, max=20, message="医院ID长度必须介于 1 和 20 之间")
    private String hospitalId;

    /**
     * 供应商ID
     */
    @NotBlank(message = "供应商ID不能为空")
    @Length(min = 1, max = 20, message = "供应商ID长度必须介于 1 和 20 之间")
    private String supplierId;

    private Integer inactive;

    /**
     * 机构ID
     */
    //@NotBlank(message="组织机构不能为空")
    private String officeId;

    /**
     * 识别码
     */
    @NotBlank(message = "识别码不能为空")
    @Length(min = 1, max = 7, message = "识别码长度必须介于 1 和 7 之间")
    private String code;

    /**
     * 统一社会信用代码
     */
    @NotBlank(message = "统一社会信用代码不能为空")
    @Length(min = 1, max = 30, message = "统一社会信用代码长度必须介于 1 和 30 之间")
    private String companyCode;

    /**
     * 供应商名称
     */
    @NotBlank(message = "供应商名称不能为空")
    @Length(min = 1, max = 100, message = "供应商名称长度必须介于 1 和 100 之间")
    private String name;

    /**
     * 助记码
     */
    @Length(max = 50, message = "助记码长度必须介于 0 和 50 之间")
    private String pinyin;

    /**
     * 是否药品供应商
     */
    @NotNull(message = "是否药品供应商不能为空")
    private Integer isDrug;

    /**
     * 是否耗材供应商
     */
    @NotNull(message = "是否耗材供应商不能为空")
    private Integer isConsumable;

    /**
     * 是否试剂供应商
     */
    @NotNull(message = "是否试剂供应商不能为空")
    private Integer isReagent;

    /**
     * 区域id
     */
    private String regionId;

    /**
     * 区域名称
     */
    private String regionName;

    /**
     * 地址
     */
    @NotBlank(message = "地址不能为空")
    @Length(min = 1, max = 200, message = "地址长度必须介于 1 和 200 之间")
    private String address;

    /**
     * 联系人
     */
    @NotBlank(message = "联系人不能为空")
    @Length(min = 1, max = 50, message = "联系人长度必须介于 1 和 50 之间")
    private String contactor;

    /**
     * 邮箱
     */
    @NotBlank(message = "邮箱不能为空")
    @Length(min = 1, max = 50, message = "邮箱长度必须介于 1 和 50 之间")
    private String email;

    /**
     * 电话
     */
    @Length(max = 20, message = "电话长度必须介于 0 和 20 之间")
    private String phone;

    /**
     * 移动电话
     */
    @Length(max = 20, message = "移动电话长度必须介于 0 和 20 之间")
    private String mobile;

    /**
     * 医院名称
     */
    private String hospitalName;

    /**
     * 医院代码
     */
    private String hospitalCode;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 供应商名称
     */
    private String loginKey;

    public String getSupplierName() {
        if (StringUtils.isBlank(supplierName)) {
            return supplierName;
        }
        return supplierName.replaceAll("(.*?)\\[.*?\\]", "$1");
    }

    public static final int ENABLE = 0;
    public static final int DISABLE = 1;

}
